import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import * as path from 'path';
import DefineOptions from 'unplugin-vue-define-options/vite';
import Icons from 'unplugin-icons/vite';
//引入 Icon自动引入解析器
import IconsResolver from 'unplugin-icons/resolver';
// 引入自动引入插件
import UnpluginVueComponents from 'unplugin-vue-components/vite';
//import { FileSystemIconLoader } from 'unplugin-icons/loaders';
import { loadEnv } from 'vite';
const root = process.cwd();
const env = loadEnv(process.argv[process.argv.length - 1], root);
// https://vitejs.dev/config/
export default ({ mode }) =>
  defineConfig({
    plugins: [
      vue(),
      vueJsx(),
      DefineOptions(),
      // 使用自动引入插件
      UnpluginVueComponents({
        dts: true,
        dirs: ['src/components'], // 按需加载的文件夹
        // 配置解析器
        resolvers: [
          // Icon自动引入解析器
          IconsResolver({
            //customCollections: ['custom'],
            // 自动引入的Icon组件统一前缀，默认为 i，设置false为不需要前缀
            //prefix: 'icon',
          }),
        ],
      }),
      Icons({
        compiler: 'vue3',
        autoInstall: true,
        // customCollections: {
        //   // 这里是存放svg图标的文件地址，custom是自定义图标库的名称
        //   custom: FileSystemIconLoader('./src/icons'),
        // },
      }),
    ],
    //配置路径别名
    resolve: {
      alias: {
        '@': path.resolve(__dirname, './src'),
      },
      extensions: ['.js', '.json', '.ts'], // 使用路径别名时想要省略的后缀名，可以自己 增减
    },
    server: {
      cors: true, // 默认启用并允许任何源
      https: false,
      host: 'localhost',
      port: 8848,
      open: true,
      hmr: {
        overlay: true,
      },
      proxy: {
        '/api': {
          target: loadEnv(mode, process.cwd()).VITE_APP_API,
          changeOrigin: true,
          rewrite: path => path.replace(/^\/api/, ''), // 重定向地址
        },
      },
    },
  });
